#include "game_model\headers\game_model.hpp"

#include "game_model\headers\game_model_object_factory.hpp"

#include <QtCore\qplugin.h>

namespace GameModel {

class GameModelPluginInstance
	:	public GameModelPlugin
{

public:

	GameModelPluginInstance()
		:	m_objectFactory( new ObjectFactory() )
	{
	}

public:

	virtual bool isEverythingCool() const
	{
		return true;
	}

public:

	virtual std::shared_ptr< IObjectFactory > getObjectFactory() const
	{
		return m_objectFactory;
	}

private:

	std::shared_ptr< IObjectFactory > m_objectFactory;

};

Q_EXTERN_C GAME_MODEL_EXPORT GameModelPlugin* getGameModelPlugin()
{
	return new GameModelPluginInstance;
}

} // namespace GameModel